1. Technology Field
The present invention relates to a method for giving program commands to a flash memory, and a flash memory controller and a flash memory storage system using the same.
2. Description of Related Art
Flash memory is one of the most adaptable memories for portable electronic products due to its data non-volatility, low power consumption, small volume, and non-mechanical structure. For example, a solid state drive (SSD) is a storage device that uses a NAND flash memory as its storage medium, and which has been broadly used in notebook computers as the main storage device.
FIG. 1 is a schematic block diagram of a flash memory storage system. Generally speaking, when a host system 110 is coupled to the flash memory storage device 120 through a connector 122 and is about to store data into the flash memory storage device 120, the procedure for writing the data into a flash memory module 126 of the flash memory storage device 120 can be divided into a data transferring stage and a data programming stage. To be specific, when the host system 110 is about to store data into the flash memory storage device 120, a flash memory controller 124 transmits the data into a buffer area 132 in the flash memory module 126 through a data input/output bus 128, and then the flash memory module 126 programs the data in the buffer area 132 into a memory cell (i.e., a storage area) 134 in the flash memory module 126, wherein the flash memory module 126 is in a busy status during it programs the data into the memory cell 134, and the flash memory controller 124 cannot give any command or transmit any data to the flash memory module 126 when the flash memory module 126 is in the busy status. Namely, the flash memory controller 124 can only respond to the host system 110 and process a next command of the host system 110 after the flash memory module 126 finishes programming the data.
To be specific, when the flash memory controller 124 receives a host write command and data from the host system 110 and accordingly is about to write the data into the flash memory module 126, the flash memory controller 124 gives a program command through the data input/output bus 128, and the related information in the program command is temporarily stored in the buffer area 132. For example, the program command is composed of strings such as “command W1”, “physical address”, “data”, and “command W2”, etc. The flash memory controller 124 requests the flash memory module 126 to get ready for a programming procedure through the “command W1”, provides the flash memory module 126 with the address to be programmed through the “physical address”, provides the flash memory module 126 with the data to be programmed through the “data”, and requests the flash memory module 126 to start executing the programming procedure through the “command W2”. Thus, when the flash memory module 126 starts to write the data in the buffer area 132 into the memory cell 134 according to the “command W2” in the program command, the flash memory controller 124 only responds to the host system 110 after it receives an acknowledgement message indicating that the programming procedure is finished from the flash memory module 126. Generally speaking, the time period from the host system giving the command to the host system receiving the acknowledgement message is referred to as a response time.
The transmission speed of connectors has been greatly increased along with the development of transmission technology. For example, a serial advanced technology attachment (SATA) connector can transmit data of up to 1.5 gigabit (Gb) per second or even 30 Gb/second. However, the speed for programming a flash memory is much lower than the transmission speed of a connector. As a result, the overall performance cannot be improved. Thereby, how to shorten the time for executing host write commands is one of the major subjects in the industry.
Nothing herein should be construed as an admission of knowledge in the prior art of any portion of the present invention. Furthermore, citation or identification of any document in this application is not an admission that such document is available as prior art to the present invention, or that any reference forms a part of the common general knowledge in the art.